// import Vue from 'vue'
import axios from 'axios'
import { Notify } from 'vant'

// 第一种
// axios.defaults.baseURL = 'http://ttapi.research.itcast.cn/app/'

// // 请求拦截器，发送axios请求之前先执行拦截器
// axios.interceptors.request.use(config => {
//     if (config.url === 'login') return config
//     config.headers.Authorization = window.sessionStorage.getItem('token')
//     return config
// })

// Vue.prototype.$axios = axios

// 第二种
const request = axios.create()

// // 请求拦截器，发送axios请求之前先执行拦截器
request.interceptors.request.use(config => {
  if (config.url === '') return config
  config.headers.Authorization = window.sessionStorage.getItem('token')
  return config
})

// 响应拦截器
request.interceptors.response.use(config => {
  if (config.status === 401) {
    // window.location = 'login'
    // return config
  }
  return config
})

export default request

// 封装的请求promis
export const withMsg = (promis, message, callback) => {
  promis
    .then((res) => {
      message && Notify({ type: 'success', message })
      callback && callback(res)
    })
    .catch((err) => {
      Notify(err.response.data.message)
    })
}

// 封装2
export const withMsg2 = (promis, message) => {
  return new Promise((resolve, reject) => {
    promis
      .then((res) => {
        message && Notify({ type: 'success', message })
        resolve(res)
      })
      .catch((err) => {
        Notify(err.response.data.message)
        reject(err)
      })
  })
}
